#include <iostream>
#include <string>
using namespace std;

const int N = 1e6 + 10;
int a[N],b[N],c[N];
int la,lb,lc;
bool flag;

bool bigger(string str1,string str2){
	return (str1.size() > str2.size())||(str1.size() == str2.size()&&str1 >= str2);
}

void sub(int c[],int a[],int b[]){
	for(int i = 0;i < lc;i++){
		c[i] += a[i] - b[i];
		if(c[i] < 0){
			c[i] += 10;
			c[i + 1]--;
		}
	}
	while(c[lc - 1] == 0){
		lc--;
	}
}

int main(){
	string str1,str2;
	cin >> str1 >> str2;
	int sz1 = str1.size(),sz2 = str2.size();
	if(bigger(str1,str2)){
		for(int i = sz1 - 1;i >= 0;i--){
			a[sz1 - i - 1] = str1[i] - '0';
		}
		for(int i = sz2 - 1;i >= 0;i--){
			b[sz2 - i - 1] = str2[i] - '0';
		}
		la = sz1,lb = sz2,lc = max(la,lb);	
	}
	else{
		for(int i = sz1 - 1;i >= 0;i--){
			b[sz1 - i - 1] = str1[i] - '0';
		}
		for(int i = sz2 - 1;i >= 0;i--){
			a[sz2 - i - 1] = str2[i] - '0';
		}
		la = sz2,lb = sz1,lc = max(la,lb);
		flag++;
	}
	sub(c,a,b);
	if(flag) cout << "-" ;
	for(int i = lc - 1;i >= 0;i--){
		cout << c[i] ;
	}
	return 0;
}
